﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.UI;
using Z16.BLI;

namespace Z16.SITE
{
    public partial class TarefaStatus : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if ((Session["CodPerfil"] == null) || (Session["CodUsr"] == null))
            {
                Response.Write("<script>window.location=\'Login.aspx';</script>");
                return;
            }

            if (!IsPostBack)
            {
                CarregarTarefa(Convert.ToInt32(Request.QueryString["id"]));
            }
        }

        protected void CarregarTarefa(int codTarefa)
        {
            Tarefa tarefa = new Tarefa();
            DataTable dt = tarefa.listarStatustarefas(codTarefa);

            List<DataRow> list = dt.AsEnumerable().ToList();

            if (list.Count > 0)
            {
                var dem = list.First();

                txtTarefa.Text = dem[1].ToString();
                txtDataInclu.Text = dem[2].ToString();
                txtDataIni.Text = dem[3].ToString();
                txtDataFim.Text = dem[4].ToString();
                txtMinuto.Text = dem[8].ToString();
                txtEspecTarefa.Text = dem[9].ToString();
            }

            if (txtDataIni.Text != "")
                btnGravar.Text = "Finalizar Tarefa";

            if (txtDataFim.Text != "")
            {
                btnGravar.Visible = false;
                trMinuto.Visible = true;
            }
        }

        protected void btnGravar_Click(object sender, EventArgs e)
        {
            divSucess.Visible = false;
            divError.Visible = false;

            int? codTarefa = null;

            if (Request.QueryString["id"] != null)
                codTarefa = int.Parse(Request.QueryString["id"]);

            try
            {
                if (btnGravar.Text == "Iniciar Tarefa")
                {
                    Tarefa tarefa = new Tarefa();

                    var ret = tarefa.iniciaTarefa(codTarefa);
                    var retorno = ret.Split(';');

                    CarregarTarefa(Convert.ToInt32(codTarefa));

                    this.ExibirMensagem(retorno[0], retorno[1]);
                }
                else
                {
                    Tarefa tarefa = new Tarefa();

                    var ret = tarefa.finalizaTarefa(codTarefa);
                    var retorno = ret.Split(';');

                    CarregarTarefa(Convert.ToInt32(codTarefa));

                    this.ExibirMensagem(retorno[0], retorno[1]);
                }
            }
            catch
            {
                divError.Visible = true;
            }
        }

        protected void ExibirMensagem(string erro, string mensagem)
        {
            if (erro.Equals("0"))
            {
                divSucess.Visible = true;
                lblMsg.Text = mensagem;
            }
            else
            {
                divError.Visible = true;
                lblErro.Text = mensagem;
            }
        }
    }
}